如何创建一个 Maven 工程。
编写 POM
- 新建一个 hello-world 文件夹
- 在文件夹下新建一个 pom.xml 文件。这个文件用来定义项目的基本信息。代码如下:
| 1 | <project xmlns="http://maven.apache.org/POM/4.0.0" | 
编写主代码
在 hello-world 文件夹下创建 src/main/java 文件夹,在 java 文件夹下创建 com/diaolizhi/HelloWorld.java 文件,代码如下:
| 1 | package com.diaolizhi.helloworld; | 
在主目录 hello-world 下打开命令行,运行:
| 1 | mvn clean compile | 
这句话先清理输出目录 target/,compile 告诉 Maven 编译项目主代码。
编写测试代码
首先为项目添加依赖,添加之后的 pom.xml 文件:
| 1 | <project xmlns="http://maven.apache.org/POM/4.0.0" | 
在 根目录/src/test/java 文件夹下创建 HelloWorldTest.java
| 1 | package com.diaolizhi.helloworld; | 
注意:测试类不用放在固定的包下,直接放在 src/test/java 目录下即可,而且第一行代码 package xx.xx.xxx; 和主类一样。
执行测试
在根目录下运行
| 1 | mvn clean test | 
执行测试,结果发现有错误。
由于历史原因,Maven 的核心插件之一——compiler 插件默认只支持编译 Java 1.3,因此需要配置该插件使其支持 Java 5。
在 pom.xml 中加入如下的代码:
| 1 | <build> | 
这样就可以成功执行测试了。
打包和运行
- 单纯地打包,得到的 jar 包位于 target/ 目录下
| 1 | mvn clean package | 
- 打包并放入本地仓库,以便其他项目使用
| 1 | mvn clean install | 
生成可运行的 jar 包
HelloWorld 类是有一个 main 方法的,默认打包生成的 jar 是不能够直接运行的,因为带有 main 方法的类信息不会添加到 manifest 中。为了生成可执行的 jar 文件,需要借助 maven-shade-plugin,配置该插件如下:
(plugin 元素在 pom.xml 中的 project 下的 build 下的 plugins 标签下)
| 1 | <plugin> | 
再次运行
| 1 | mvn clean package | 
就会自动生成可执行 jar 包,位于 target/ 目录下, original 开头的包是原始的包,另一个才是可执行的。
使用下面的命令执行 jar 包:
| 1 | java -jar target\hello-world-1.0-SNAPSHOT.java | 
使用 Archetype 生成项目骨架
因为装的是 Maven 3,所以直接运行:
| 1 | mvn archetype:generate | 
敲两次回车,然后输入 groupId、artifactId、version、package,并按回车确定。